////////////////////////////////////////////////////////////////////////////////

#ifndef _WEAPON_H_
#define _WEAPON_H_

////////////////////////////////////////////////////////////////////////////////

#include "object.h"
#include "timer.h"

////////////////////////////////////////////////////////////////////////////////


/** Base class for all weapons
*
*  @author   Roman Pasechnik
*  @since    Jun 04th, 2009
*  @updated  Jun 05th, 2009
*/
class Weapon : public Object
{
////////////////////////////////////////////////////////////////////////////////

public:

////////////////////////////////////////////////////////////////////////////////


    /** Constructor */
    Weapon();


    /** Destructor */
    virtual ~Weapon();


    /** Returns attack speed */
    int GetAttackSpeed();


    /** Shoot, returns true when ready and resets timer */
    bool Shoot();


////////////////////////////////////////////////////////////////////////////////

private:

////////////////////////////////////////////////////////////////////////////////


    /** Bullets count */
    int m_Bullets;


    /** Attack speed */
    int m_AttackSpeed;


    /** Timer for shooting delay */
    Timer m_Timer;


////////////////////////////////////////////////////////////////////////////////
};


////////////////////////////////////////////////////////////////////////////////

#endif

////////////////////////////////////////////////////////////////////////////////
